var express = require('express');
var router = express.Router();

var User = require('../schema/UsersSchema'); //引入对象


// 发送手机号返回数据库是否已存在该手机号, 给登录用
// 状态码0表示不存在, 状态码1表示已存在 并且发送验证码"6666"
router.post('/loginphoneexist', function (req, res) {
  User.find({ "phone": req.body.phone }, (err, doc) => {
    if (err) return console.error(err);
    if (doc.length !== 0) {
      res.send({ status: 0, yzm: "6666" });
    } else {
      res.send({ status: 1 });
    }
    res.end();
  });
});

// 发送手机号返回数据库是否已存在该手机号, 给注册用
// 状态码0表示不存在 并且发送验证码"6666", 状态码1表示已存在 
router.post('/registerphoneexist', function (req, res) {
  User.find({"phone" : req.body.phone}, (err, doc) => {
    if (err) return console.error(err);
    if (doc.length !== 0) {
      res.send({ status: 1 });
    } else {
      res.send({ status: 0, yzm: "6666" });
    }
    res.end();
  });
});
// 用于手机号的验证码登录, 需要正确的验证码 (验证码: 6666)
// 状态码0表示登录成功,返回token(值: 12345), 状态码1表示没找到号码, 状态码2表示验证码错误
router.post('/login', async function (req, res) {
  if (req.body.yzm !== "6666") {
    res.send({ status: 2 });
    res.end();
    return;
  }
  User.find({"phone": req.body.phone}, (err, doc) => {
    if (err) return console.error(err);
    if (doc.length !== 0) {
      res.send({ status: 0, token: "12345" });
    } else {
      res.send({ status: 1 });
    }
    res.end();
  });
});

// 用于注册手机号, 需要正确的验证码 (验证码: 6666)
// 状态码0表示注册成功,返回token(值: 12345), 状态码1表示注册失败, 状态码2表示验证码错误
router.post('/register', function (req, res) {
  if (req.body.yzm !== "6666") {
    res.send({ status: 2 });
    res.end();
    return;
  }
  const user = new User({
    "phone": req.body.phone,
    "nickname": "铲屎官"
  });
  user.save((err, doc) => {
    if (err) return console.error(err);
    if (doc.length !== 0) {
      res.send({ status: 0, token: "12345" });
    } else {
      res.send({ status: 1 });
    }
    res.end();
  });
});
// 完善个人信息, 必须要token(值: 12345) , 可以传头像(暂未实现), 昵称, 性别(直接用男女), 地区(手写地区), 简介
// 0: 成功, 1: 失败, 2: 未登录
router.post('/prefect', function (req, res) {
  if (req.body.token !== "12345") {
    res.send({ status: 2 });
    res.end();
    return;
  }
  User.updateOne({ phone: req.body.phone }, {
    "nickname": req.body.nickname || null,
    "sex": req.body.sex || null,
    "address": req.body.address || null,
    "intro": req.body.intro || null,
  }, (err, doc) => {
    if (err) return console.error(err);
    if (doc.ok !== 0) {
      res.send({ status: 0 });
    } else {
      res.send({ status: 1 });
    }
    res.end();
  });
});

// 获取个人信息, 必须要token(值: 12345) , 可以获取头像(暂未实现), 昵称, 性别(直接用男女), 地区(手写地区), 简介
// 0: 成功, 1: 失败, 2: 未登录
router.post('/getpersonal', function (req, res) {
  if (req.body.token !== "12345") {
    res.send({ status: 2 });
    res.end();
    return;
  }
  User.find({ phone: req.body.phone }, (err, doc) => {
    if (err) return console.error(err);
    if (doc.length !== 0) {
      res.send(doc[0]);
    } else {
      res.send({ status: 1 });
    }
    res.end();
  });
});

module.exports = router;
